(function () {
	"use strict";

	var treeviewMenu = $('.app-menu');

	// Toggle Sidebar
	$('[data-toggle="sidebar"]').click(function(event) {
		event.preventDefault();
		$('.app').toggleClass('sidenav-toggled');
	});

	// Activate sidebar treeview toggle
	$("[data-toggle='treeview']").click(function(event) {
		event.preventDefault();
		if(!$(this).parent().hasClass('is-expanded')) {
			treeviewMenu.find("[data-toggle='treeview']").parent().removeClass('is-expanded');
		}
		$(this).parent().toggleClass('is-expanded');
	});

	// Set initial active toggle
	$("[data-toggle='treeview.'].is-expanded").parent().toggleClass('is-expanded');

	//Activate bootstrip tooltips
	$("[data-toggle='tooltip']").tooltip();

})();
/**
 * 获取系统的ContextPath
 * @returns {*|void|jQuery}
 */
$.contextPath = function () {
    return $("#contextPath").val();
};
$.appUrl=function () {
    return "http://"+window.location.href.split('/')[2]+"/";
}
/**
 * 错误信息提示框
 * @param messages
 * @param func
 */
$.showErr = function(messages,func){
    //打开新的dialog前，关闭其他未关闭的dialogs
    $.each(BootstrapDialog.dialogs, function(id, dialog){
        dialog.close();
    });
    BootstrapDialog.show({
        type : BootstrapDialog.TYPE_DANGER,
        title : '错误提示',
        size : BootstrapDialog.SIZE_NORMAL,
        cssClass : 'myBootstrapDialog',
        message : messages,
        buttons : [{
            id : 'errorDialog_btn_close',
            label : '关闭',
            action : function(dialogItself){
                dialogItself.close();
            }
        }],
        // 对话框关闭时带入callback方法
        onhide : func
    });
};
/**
 * 普通信息提示框
 * @param messages
 * @param func
 */
$.showInfo = function(messages,func){
    //打开新的dialog前，关闭其他未关闭的dialogs
    $.each(BootstrapDialog.dialogs, function(id, dialog){
        dialog.close();
    });
    BootstrapDialog.show({
        type : BootstrapDialog.TYPE_INFO,
        title : '提示信息',
        size : BootstrapDialog.SIZE_NORMAL,
        cssClass : 'myBootstrapDialog',
        message : messages,
        buttons : [{
            id : 'infoDialog_btn_close',
            label : '关闭',
            action : function(dialogItself){
                dialogItself.close();
            }
        }],
        // 对话框关闭时带入callback方法
        onhide : func
    });
};
/**
 * 成功操作提示框
 * 显示3秒后会自动关闭
 * @param messages
 * @param func
 */
$.showSuccessTimeout = function(messages, func) {
    BootstrapDialog.show({
        type : BootstrapDialog.TYPE_SUCCESS,
        title : '操作成功 ',
        cssClass : 'myBootstrapDialog',
        message : messages,
        size : BootstrapDialog.SIZE_SMALL,
        buttons : [ {
            id : 'successDialog_btn_close',
            label : '确定',
            action : function(dialogItself) {
                dialogItself.close();
            }
        } ],
        // 指定600毫秒自动关闭
        onshown : function(dialogRef) {
            setTimeout(function() {
                dialogRef.close();
            }, 600);
        },
        // 对话框关闭时带入callback方法
        onhide : func
    });
};

/**
 * confirm确认框
 * @param str
 * @param funcok
 * @param funcclose
 */
$.showConfirm = function(str, funcok, funcclose) {
    BootstrapDialog.confirm({
        title : '确认',
        message : str,
        cssClass : 'myBootstrapDialog',
        type : BootstrapDialog.TYPE_WARNING, // <-- Default value is
        closable : true, // <-- Default value is false，点击对话框以外的页面内容可关闭
        draggable : true, // <-- Default value is false，可拖拽
        btnCancelLabel : '取消', // <-- Default value is 'Cancel',
        btnOKLabel : '确定', // <-- Default value is 'OK',
        btnOKClass : 'btn-warning', // <-- If you didn't specify it, dialog type
        size : BootstrapDialog.SIZE_SMALL,
        // 对话框关闭的时候执行方法
        onhide : funcclose,
        callback : function(result) {
            // 点击确定按钮时，result为true
            if (result) {
                // 执行方法
                funcok.call();
            }
        }
    });
};
/**
 * 对Date的扩展，将 Date 转化为指定格式的String
 * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * 例子：
 * (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
 * (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
 * (new Date()).Format("yyyy-MM-dd")
 * (new Date()).Format("yyyy-MM-dd HH:mm:ss")
 * @param fmt
 * @returns {*}
 * @constructor
 */
Date.prototype.Format = function (fmt) { //author: meizz
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}
